#include "UnionFindSet.hpp"
#include "Graph.hpp"
#include <cstring>

int main()
{
    // matrix::Graph<char, int> g("ABCD", strlen("ABCD"));
    // g.AddEdge('A', 'B', 1);
    // g.AddEdge('B', 'C', 1);
    // g.AddEdge('C', 'D', 1);
    // g.AddEdge('D', 'A', 1);
    // g.Print();

    // matrix::Graph<char, int, INT32_MAX, true> g("ABC", strlen("ABC"));
    // g.AddEdge('A', 'B', 1);
    // g.AddEdge('B', 'A', 1);
    // g.AddEdge('B', 'C', 1);
    // g.Print();

    string a[] = { "张三", "李四", "王五", "赵六", "周七" };
    link_table::Graph<string, int, true> g1(a, sizeof(a)/sizeof(string));
    g1.AddEdge("张三", "李四", 100);
    g1.AddEdge("张三", "王五", 200);
    g1.AddEdge("王五", "赵六", 30);
    g1.AddEdge("王五", "周七", 30);
    g1.Print();

    return 0;
}